package com.ppg.basic;

public class IntegerTest {


    public static void main(String[] args) {

        /**
         * Integer 类中 维护了 {@link IntegerCache} 缓存类 缓存 了 -128 - 127 的Integer 对象
         *
         * 为了 常用的数字 对象可以复用
         *
         * Integer 类的valueOf() 方法 中调用了 缓存中的对象 ， 所以说  如果 在-128 - 127 范围内的数字 调用valueOf 是最好的
         *
         * 另外 在Long Short 等等 的 包装对象  都加了 相同的缓存  详情 可以查看 源码
         *
         */
        Integer i1 = 40;

        /**
         * 编译的时候  Integer i2 = Integer.valueOf(40); 获取的是 缓存中的 对象；
         *
         * 所以 i1 = i2；
         */
        Integer i2 = 40;

        System.out.println(i1 == i2);

        Integer i3 = new Integer(40);

        Integer i4 = new Integer(40);

        System.out.println(i3 == i4);

        System.out.println(i3 == i1);

        System.out.println(new Integer(40) == 40);

        //位移运算  <<  >>  >>>
        int i5 = 1;
        int i6 = i5 << 3;
        System.out.println(i6);
    }
}
